Deploying, configuring, and maintaining applications is a challenging and time consuming task. This task is complicated by distributed applications that may have components distributed across multiple devices.
For example, deploying a distributed application may involve understanding its deployable components as well as the hardware and software requirements for each component. In addition, components of a distributed application may depend on other components of the distributed application in such a way that deploying, troubleshooting, or otherwise managing the application may be difficult. Furthermore, taking applications or components thereof in and out of service may demand a sound understanding of the effects of such actions to avoid problems with other applications and components.
With the ever-increasing complexity and interdependence of software systems, these problems and others related to managing distributed applications will only become more challenging and may go beyond the skills of most information technology (IT) administrators.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.